﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Baci.Net.ToolKit.ArcGISProGeoprocessor
{
    public static class GPLinearUnit
    {
        public static string Kilometers(int value)
        {
            return Kilometers((object)value);
        }
        public static string Kilometers(long value)
        {
            return Kilometers((object)value);
        }
        public static string Kilometers(double value)
        {
            return Kilometers((object)value);
        }
        private static string Kilometers(object value)
        {
            return $"{value} Kilometers";
        }

        public static string Meters(int value)
        {
            return Meters((object)value);
        }
        public static string Meters(long value)
        {
            return Meters((object)value);
        }
        public static string Meters(double value)
        {
            return Meters((object)value);
        }
        private static string Meters(object value)
        {
            return $"{value} Meters";
        }

        /// <summary>
        /// 分米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Decimeters(int value)
        {
            return Decimeters((object)value);
        }
        /// <summary>
        /// 分米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Decimeters(long value)
        {
            return Decimeters((object)value);
        }
        /// <summary>
        /// 分米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Decimeters(double value)
        {
            return Decimeters((object)value);
        }
        /// <summary>
        /// 分米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Decimeters(object value)
        {
            return $"{value} Decimeters";
        }

        /// <summary>
        /// 厘米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Centimeters(int value)
        {
            return Centimeters((object)value);
        }
        /// <summary>
        /// 厘米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Centimeters(long value)
        {
            return Centimeters((object)value);
        }
        /// <summary>
        /// 厘米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Centimeters(double value)
        {
            return Centimeters((object)value);
        }
        /// <summary>
        /// 厘米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Centimeters(object value)
        {
            return $"{value} Centimeters";
        }

        /// <summary>
        /// 毫米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Millimeters(int value)
        {
            return Millimeters((object)value);
        }
        /// <summary>
        /// 毫米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Millimeters(long value)
        {
            return Millimeters((object)value);
        }
        /// <summary>
        /// 毫米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Millimeters(double value)
        {
            return Millimeters((object)value);
        }
        /// <summary>
        /// 毫米
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Millimeters(object value)
        {
            return $"{value} Millimeters";
        }

        /// <summary>
        /// 海里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string NauticalMiles(int value)
        {
            return NauticalMiles((object)value);
        }
        /// <summary>
        /// 海里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string NauticalMiles(long value)
        {
            return NauticalMiles((object)value);
        }
        /// <summary>
        /// 海里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string NauticalMiles(double value)
        {
            return NauticalMiles((object)value);
        }
        /// <summary>
        /// 海里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string NauticalMiles(object value)
        {
            return $"{value} NauticalMiles";
        }

        /// <summary>
        /// 英里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Miles(int value)
        {
            return Miles((object)value);
        }
        /// <summary>
        /// 英里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Miles(long value)
        {
            return Miles((object)value);
        }
        /// <summary>
        /// 英里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Miles(double value)
        {
            return Miles((object)value);
        }
        /// <summary>
        /// 英里
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Miles(object value)
        {
            return $"{value} Miles";
        }

        /// <summary>
        /// 码
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Yards(int value)
        {
            return Yards((object)value);
        }
        /// <summary>
        /// 码
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Yards(long value)
        {
            return Yards((object)value);
        }
        /// <summary>
        /// 码
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Yards(double value)
        {
            return Yards((object)value);
        }
        /// <summary>
        /// 码
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Yards(object value)
        {
            return $"{value} Yards";
        }

        /// <summary>
        /// 英尺
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Feet(int value)
        {
            return Feet((object)value);
        }
        /// <summary>
        /// 英尺
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Feet(long value)
        {
            return Feet((object)value);
        }
        /// <summary>
        /// 英尺
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Feet(double value)
        {
            return Feet((object)value);
        }
        /// <summary>
        /// 英尺
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Feet(object value)
        {
            return $"{value} Feet";
        }

        /// <summary>
        /// 英寸
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Inches(int value)
        {
            return Inches((object)value);
        }
        /// <summary>
        /// 英寸
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Inches(long value)
        {
            return Inches((object)value);
        }
        /// <summary>
        /// 英寸
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Inches(double value)
        {
            return Inches((object)value);
        }
        /// <summary>
        /// 英寸
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string Inches(object value)
        {
            return $"{value} Inches";
        }

        public static string Unknown(int value)
        {
            return Unknown((object)value);
        }
        public static string Unknown(long value)
        {
            return Unknown((object)value);
        }
        public static string Unknown(double value)
        {
            return Unknown((object)value);
        }
        private static string Unknown(object value)
        {
            return $"{value} Unknown";
        }



    }
}
